;**********************************************************
;  Microchip Enhanced PIC16F1xxx C Compiler (CC16E), v1.00
;  Tue Jul 13 21:03:27 2021
;**********************************************************
	.invoke	"\iCC16e/include/pic16e"
	.invoke	"\iCC16e/include/p16f1455"

	.device	"p16f1455", 1024, 8192

_$$::	.rs	0x23F0	; stack init. value

	.segment	BANKi (REL)
tbl::	.rs	4
	.segment	BANKi (REL)
X:	.rs	1


	.segment	CODE2 (REL) foo:15
foo_$1_n:	.equ	foo_$data$+0
foo_$2_x:	.equ	foo_$data$+2
foo_$3_p1:	.equ	foo_$data$+3
foo_$4_p2:	.equ	foo_$data$+5
foo_$5_m:	.equ	foo_$data$+7
foo_$6_w:	.equ	foo_$data$+11
foo::
; :: logic.c #14: n = x & 100;
	.bsel	foo_$data$
	movf	foo_$2_x, W
	andlw	100
	movwf	foo_$1_n
	clrf	foo_$1_n+1
; :: logic.c #15: m = w & 0xff00ff00;
	clrf	foo_$5_m
	movf	foo_$6_w+1, W
	movwf	foo_$5_m+1
	clrf	foo_$5_m+2
	movf	foo_$6_w+3, W
	movwf	foo_$5_m+3
; :: logic.c #16: x = &n ^ 100;
	movlw	((foo_$1_n^100))
	movwf	foo_$2_x
; :: logic.c #17: PORTA = *p1 | *p2;
	movf	foo_$3_p1, W
	movwf	FSR0L
	movf	foo_$3_p1+1, W
	movwf	FSR0H
	moviw	0[INDF0]
	movwf	112
	movf	foo_$4_p2, W
	movwf	FSR0L
	movf	foo_$4_p2+1, W
	movwf	FSR0H
	moviw	0[INDF0]
	iorwf	112, W
	.bsel	foo_$data$, 12
	movwf	12
; :: logic.c #18: PORTA = *p1 & 100;
	.bsel	12, foo_$data$
	movf	foo_$3_p1, W
	movwf	FSR0L
	movf	foo_$3_p1+1, W
	movwf	FSR0H
	moviw	0[INDF0]
	andlw	100
	.bsel	foo_$data$, 12
	movwf	12
; :: logic.c #19: PORTA = *p2 & (&n);
	.bsel	12, foo_$data$
	movf	foo_$4_p2, W
	movwf	FSR0L
	movf	foo_$4_p2+1, W
	movwf	FSR0H
	moviw	0[INDF0]
	andlw	(foo_$1_n), W
	.bsel	foo_$data$, 12
	movwf	12
; :: logic.c #20: PORTA = tbl[0] & tbl[1];
	.bsel	12, tbl
	movf	tbl, W
	.bsel	tbl, (tbl+1)
	andwf	(tbl+1), W
	.bsel	(tbl+1), 12
	movwf	12
	return

	.segment	CODEi (REL)
	movlw	(tbl$init$)
	movwf	FSR1L
	movlw	(tbl$init$)>>8
	movwf	FSR1H
	movlw	(tbl)
	movwf	FSR0L
	movlw	(tbl)>>8
	movwf	FSR0H
	movlw	252
	movwf	0x70
_$L2:
	moviw	INDF1++
	movwi	INDF0++
	incfsz	0x70, F
	bra	_$L2

	movlw	100
	.bsel	X
	movwf	X

	.segment	CONSTi (REL)
tbl$init$:
	retlw	100
	retlw	110
	retlw	120
	retlw	130

	.segment	CONSTi (REL)
str:
	retlw	(_$CS1)
	retlw	(_$CS1)>>8

	.segment	CONSTi (REL)
_$CS1:
	retlw	72
	retlw	101
	retlw	108
	retlw	108
	retlw	111
	retlw	33
	retlw	0

	.end
